The present invention relates to computing, and in particular, to a systems and methods for visualizing and optimizing a query to a database.
Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Databases are highly useful tools allowing users to manage complex relationships between different types of data. For example, a database may be organized in rows and columns, with rows representing different data entities and columns representing related data types common to those entities. Databases are typically created and maintained in an application level language such as Structured Query Language (SQL).
Conventionally, it may be challenging to design a user interface that is able to interact in an effective and efficient manner with the underlying database. One reason for this is that the user of the database is typically not familiar with the query execution flow in the database, as SQL is a declarative language rather than a procedural language.
While the SQL may allow the user to interact with the database in an intuitive manner, it may not afford the user sufficient transparency into the application level structure of the database to achieve efficiency querying. For example, owing to a lack of knowledge of the actual statistics of the database, the query optimizer may mistakenly construct an inefficient query execution plan that consumes excessive computing resources and hence is not cost-effective and/or practicable to execute.
The result of such inefficient querying may be to consume excessive processing resources, and/or to cause delays in the system. Apart from abnormally long processing delays, a database user may not be able to recognize such inefficiency. Moreover, even if the inefficiency is recognized, the database user may not be able to understand the source of the inefficiency, and be in a position to correct it by choosing alternative query execution plan with a given query.
The present disclosure addresses these and other issues with systems and methods allowing a user to visualize and optimize a query that is to be posed to a database.